package main

import (
	"fmt"
	"strings"
)

func main() {
	//定义一个字符串
	str := "xiaowang,shishuaige"

	//Contains  会返回bool值  是精准匹配 如2  就是必须要有"ax"这个字符
	fmt.Println(strings.Contains(str, "x"))  //true
	fmt.Println(strings.Contains(str, "ax")) // false

	//ContainsAng  模糊匹配只要有一个就行  以后常用
	fmt.Println(strings.ContainsAny(str, "ax")) //true

	//Count  统计一个字符出现的次数
	fmt.Println(strings.Count(str, "a")) //3

	//HasPrefix  文件以什么开头
	file := "2023#@4.mp4"
	if strings.HasPrefix(file, "2023") {
		fmt.Println(file)
	}
	//HasSuffix  文件以什么结尾
	if strings.HasSuffix(file, ".mp4") {
		fmt.Println("文件是.mp4格式的")
	}

	//Index  寻找指定字符串 第一次 出现的位置，有就返回下标，没有就返回-1
	fmt.Println(strings.Index(str, "a"))

	//IndexAny  寻找指定字符串任意字符 第一次 出现的位置，有就返回下标，没有就返回-1
	fmt.Println(strings.IndexAny(str, "az")) //有a无z  返回的是a的最后一次出现的下标

	//LastIndex  寻找指定字符串 最后一次 出现的位置，有就返回下标，没有就返回-1
	fmt.Println(strings.LastIndex(str, "e"))

	//LastIndexAny  寻找指定字符串任意字符 最后一次 出现的位置，有就返回下标，没有就返回-1
	fmt.Println(strings.LastIndexAny(str, "ez")) //有e无z  返回的是e的最后一次出现的下标

	//Join  将每个字符中间加入指定字符
	str2 := []string{"a", "c", "f", "j"}
	str3 := strings.Join(str2, "-")
	fmt.Println(str3)

	//Split  按照指定符号分割字符串  如果没有找到指定的分割符号  就会直接返回原来字符串的格式
	str4 := strings.Split(str3, "-")
	fmt.Println(str4)

	//Repeat  重复拼接自己
	str5 := strings.Repeat("sx", 3)
	fmt.Println(str5)
	//Replace 替换 n代表替换的次数  n < 0就是所有的都替换
	str6 := strings.Replace(str, "x", "*", -1)
	fmt.Println(str6)
	//ToUpper   字母转大写  ToLower  全部转化成小写
	str7 := strings.ToUpper(str)
	str8 := strings.ToLower(str)
	fmt.Println(str7)
	fmt.Println(str8)

	//截取字符串  str[start, end]  所有都是左闭右开
	str9 := str[0:5]
	fmt.Println(str9)
	str10 := str[5:]
	fmt.Println(str10)

}
